草庐IT

Java OutOfMemoryError 奇怪的行为

全部标签

java - 为什么 "Ꙭ".codePointAt(0)==205 和其他 Java 字符奇怪?

(以免因为过于本地化而关闭,我选择了Ꙭ作为示例,但许多其他字符也会出现这种情况)字符Ꙭ是\uA66C或十进制的42604(http://unicodinator.com/#A66C)。在使用Java的Character类时,我看到了一些我无法理解的非常奇怪的事情。1)Character.isLetter('Ꙭ');//won'tcompile,complains'unclosedcharacterliteral'2)Character.isLetter("Ꙭ".charAt(0));//returnstrue,whichisright3)Character.isLetter(42604

Java 自省(introspection) - 奇怪的行为

下面的代码是一个可以轻松重现问题的小示例。所以我有String类型的变量,在其上设置了默认值。我有3种方法:setter/getter二传手将字符串转换为boolean值的便捷方法内省(introspection)不会将getter作为readMethod返回,将setter作为writeMethod返回。相反,它返回isTest()方法作为readMethod。setter是空的。从文档中我了解到,如果类型是boolean值,则“is”方法比get具有更高的优先级,但类型是String,因此即使查找“is-xxx”也没有意义方法?publicclassTest{publicclass

java - 排序时非常奇怪的效率怪癖

我目前正在上数据结构类(class),正如您所料,我们必须做的其中一件事就是编写一些常见的排序。在编写我的插入排序算法时,我注意到运行速度明显快于我导师的算法(对于400000个数据点,我的算法花费了大约30秒,他的算法花费了大约90秒)。我通过电子邮件将我的代码发给他,当它们都在同一台机器上运行时,结果相同。我们设法浪费了40多分钟,慢慢地将他的排序方法改为我的排序方法,直到完全一样,逐字逐句,除了一个看似随意的事情。首先,这是我的插入排序代码:publicstaticint[]insertionSort(int[]A){//Checkforillegalcasesif(A==nul

Java 8 供应商行为 : final variable might not be initialized

Java不允许在供应商内部使用final变量,因为它可能未被初始化,但在“(this)”之前。变量使它编译并运行良好。此外,如果在分配变量之前调用此类供应商,则调用此类供应商会导致NullPointerException而不是编译器错误,如果在之后调用,则会按预期运行。是否在某处描述了这种行为?我正在使用OpenJDK1.8.0_151。例子:importjava.util.function.Supplier;classExample{finalStringstr;Suppliertest1=()->str.length();//DOESNOTCOMPILESuppliertest2=

java - 奇怪的泛型行为。早早被抹杀?

今天我遇到了Java泛型的一些奇怪行为。以下代码可以正常编译并按您预期的方式工作:importjava.util.*;publicclassTestGeneric{publicstaticvoidmain(String[]args){GenericClassgeneric=newGenericClass(7);StringstringFromList=generic.getStringList().get(0);}staticclassGenericClass{privateAobjA;privateListstringList;GenericClass(AobjA){this.obj

java - 是否有一个行为类似于队列但允许我一次获取多个元素的集合?

我正在寻找一种行为类似于队列的数据结构(它可以是队列实现)但允许我从集合中获取多个元素(例如:队列的前15个元素)。如果不需要新的依赖就好了。有这样的东西吗?我在研究过程中得到的更近的是带有drainTo()方法的BlockingQueue,但这不是我需要的。 最佳答案 LinkedList实现队列、集合和列表。你可以poll对于头部,或获得sublist对于前15个元素,然后也是removeRange删除它们。我可能只轮询15次,因为sublist/removeRange无论如何都需要以某种方式遍历元素,因此性能会相似。

java - 列表初始化的奇怪错误

我的一个friend问我是否可以帮助他找出他在一段代码上遇到的错误背后的原因,以及最重要的为什么当他添加一些代码时错误消失了.我查看了有关这些类(class)的文档,也找不到原因。代码如下:importjava.util.Arrays;importjava.util.List;importjavax.swing.JComponent;importjavax.swing.JPanel;importjavax.swing.JTabbedPane;publicclassTest{publicstaticvoidmain(String[]args){/***Thislineshowsthisc

java - 为什么 ThreadLocalRandom 的实现如此奇怪?

这个问题是关于ThreadLocalRandom在OpenJDK1.8.0版本中的实现。ThreadLocalRandom提供了一个每线程随机数生成器,没有Random强加的同步开销。最明显的实现(IMO)应该是这样的,它似乎可以保持向后兼容性而不会太复杂:publicclassThreadLocalRandomextendsRandom{privatestaticfinalThreadLocaltl=ThreadLocal.withInitial(ThreadLocalRandom::new);publicstaticThreadLocalRandomcurrent(){return

Sin 和 ToRadians 的 Java 奇怪行为

我被赋予了使用java生成Sin表的任务,但是对于某些输入值,我似乎得到了一些非常奇怪的结果。我正在使用下面的System.out.println("|sin("+currentPoint+")="+Math.sin(Math.toRadians(currentPoint)));其中(int)currentPoint是一个以度数为单位的值(例如90)这些结果我觉得很奇怪|sin(360)=-2.4492935982947064E-16|sin(180)=1.2246467991473532E-16|sin(150)=0.49999999999999994|sin(120)=0.8660

java - 奇怪的 Atomikos 异常 - init() : Log already in use? 中的错误

我们正在尝试在多个本地环境上运行使用Atomikos作为事务管理器的相同Web应用程序(每个环境都使用相同版本的spring、atomikos、tomact等,并具有相同的配置文件)。其中一些工作正常,但在其中一个中,当我们尝试启动tomcat时,出现以下异常:Causedby:java.lang.IllegalStateException:Can'toverwritecausewithjava.lang.RuntimeException:Logalreadyinuse?atjava.lang.Throwable.initCause(Throwable.java:456)atcom.a